package com.xhl.common.util;

import com.alibaba.fastjson.JSON;

import java.math.BigInteger;

/**
 * Xxl-Job 的token生成方法
 * @Author CazCen
 * @Date 2021/11/25 18:41
 */
public class MakeTokenOfXxlJob {

    public String makeToken(Object object){

        // 先转为 jsonString
        String tokenJson = JSON.toJSONString(object);
        //再把 tokenJson 转为 Byte,然后再把Byte转为16进制
        String tokenHex = new BigInteger(tokenJson.getBytes()).toString(16);
        return tokenHex;
    }

    public <T> T parseToken(String tokenHex,Class<T> clazz){

        String name = clazz.getName();
        // 先将16进制转为整型，再把整型转为Byte[],再通过new String()将Byte数组转为实际参数
        String tokenJson = new String(new BigInteger(tokenHex, 16).toByteArray());
        T t = JSON.parseObject(tokenJson, clazz);
        return t;

    }
}
